package 中国.珍林.AI.图片.分类.源.数据库源;

import jakarta.persistence.criteria.CommonAbstractCriteria;
import jakarta.persistence.criteria.CriteriaBuilder;
import jakarta.persistence.criteria.Order;
import jakarta.persistence.criteria.Predicate;
import jakarta.persistence.criteria.Root;
import org.springframework.stereotype.Repository;
import 中国.易.服务器.对象.A排序标记;
import 中国.易.服务器.对象.A过滤条件;
import 中国.易.服务器.源.数据库源.A基础数据库源;
import 中国.珍林.AI.图片.分类.对象.关系_图片_标签;
import 中国.珍林.AI.图片.分类.对象.关系_图片_标签_;
import 中国.珍林.AI.图片.分类.对象.标签_;
import 中国.珍林.AI.图片.分类.源.接口.I关系_图片_标签源;

import java.util.List;

@Repository
public class 关系_图片_标签数据库源 extends A基础数据库源<关系_图片_标签> implements I关系_图片_标签源
{
    @Override
    protected void 添加where条件(List<Predicate> plist, CriteriaBuilder cb, CommonAbstractCriteria criteria,
            Root<关系_图片_标签> root, A过滤条件<?> 过滤条件)
    {
        if (过滤条件 == null)
        {
            return;
        }
        关系_图片_标签.过滤条件 tj = (关系_图片_标签.过滤条件) 过滤条件;
        关系_图片_标签.过滤条件.过滤标记 bj = tj.get过滤标记();
        if (bj.标签_id_在其中)
        {
            CriteriaBuilder.In<Integer> in = cb.in(root.get(关系_图片_标签_.标签).get(标签_.attribute_Id));
            for (Integer id : tj.get标签_id_在其中())
            {
                in.value(id);
            }
            plist.add(in);
        }
    }

    @Override
    protected void 添加orderBy条件(List<Order> olist, CriteriaBuilder cb, Root<关系_图片_标签> root,
            A排序标记<?> 排序标记)
    {
        olist.add(cb.desc(root.get(关系_图片_标签_.分数)));
    }
}
